package com.ag.oa.core.service;

import com.ag.oa.core.entity.vo.ProjectVO;
import com.ag.oa.core.entity.vo.UserVO;

import java.util.List;
import java.util.Map;

/**
 * Author:   wjc
 * Date:     2021/10/18
 * Description:
 */
public interface IProjectService {

    void createProject(ProjectVO projectVO);

    String getProjectManagerFlag(Integer projectId, Integer userId);

    List<ProjectVO> findProjectList(Integer projectStatus, Integer projectUserId, Integer projectId);

    ProjectVO getProjectById(Integer projectId);

    List<Map> getAllMyProjectsData(Integer userId, Integer page, Integer pageSize);

    void updateProjectStatus(ProjectVO vo);

    void updateProjectDesc(ProjectVO vo);

    void updateConstitution(ProjectVO vo);

    List<ProjectVO> findProjectUserById(Integer projectId);

    void deleteProjectUserById(Integer projectId, Integer userId);

    List<UserVO> getProjectUserCheckDataList(String username, Integer projectId, Integer limitCount);

    void createProjectUsers(ProjectVO projectVO);

    List<Map> findProjectAllMembers(int projectId);

    List<Map> getProjectAddableMembers(Integer projectId, Integer userId, Integer page, Integer pageSize
            , String username);

    void saveProjectMemberUsers(Integer projectId, Integer userId, String checkedUserStr);

    void delProjectMemberUser(Integer projectId, Integer userId);

    void saveProjectMemberScore(Integer projectId, Integer userId, Integer addUserId, Integer score
            , String description);

    List<Map> getUserAllProjectScoreList(Integer userId);

    List<Map> getUserProjectScoreDetail(Integer projectId, Integer userId);

    Map<String, Object> getProjectScoreInfo(Integer scoreId);

}
